package com.example.bbbb.classdemo;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: ws
 * Date: 2023-12-14
 * Time: 15:49
 */
public class TestD {

    static {
        System.out.println("初始化1");
    }

    public TestD() {
        System.out.println("初始化2");
    }

    // 类的装载
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException {
        // 执行 加载 链接（验证 准备 解析），Class.forName 是动态类加载（运行时加载，用到什么就加载什么，即使有错误，没用到就不会异常），不需要走完全程
        Class<?> aClass = Class.forName("com.example.bbbb.classdemo.ClassL");
        // 使用，new 和 newInstance 是静态类加载（编译时加载，所以会检查错误，该类所有的信息没通过检查，就不能运行），需要走完全程
        ClassL o = (ClassL) aClass.newInstance();
        // 执行 加载 链接（验证 准备 解析） 初始化
        Class<?> aClass1 = aClass.getClassLoader().loadClass("com.example.bbbb.classdemo.ClassL");

    }
}
